package reply

type PongReply struct {
}

var pongBytes = []byte("+PONG\r\n")

func (p PongReply) ToBytes() []byte {
	return pongBytes
}

var pongReply = &PongReply{}

func MakePongReply() *PongReply {
	return pongReply
}

type OkReply struct {
}

var okBytes = []byte("+OK\r\n")

func (o OkReply) ToBytes() []byte {
	return okBytes
}

var okReply = &OkReply{}

func MakeOkReply() *OkReply {
	return okReply
}

type NullBulkReply struct {
}

var nullBulkBytes = []byte("$-1\r\n")

func (n NullBulkReply) ToBytes() []byte {
	return nullBulkBytes
}

var nullBulkReply = &NullBulkReply{}

func MakeNullBulkReply() *NullBulkReply {
	return nullBulkReply
}

type EmptyMultiBulkReply struct {
}

var emptyMultiBulkBytes = []byte("*0\r\n")

func (e EmptyMultiBulkReply) ToBytes() []byte {
	return emptyMultiBulkBytes
}

var emptyMultiBulkReply = &EmptyMultiBulkReply{}

func MakeEmptyMultiBulkReply() *EmptyMultiBulkReply {
	return emptyMultiBulkReply
}

type NoReply struct {
}

var noReplyBytes = []byte("")

func (n NoReply) ToBytes() []byte {
	return noReplyBytes
}

var noReply = &NoReply{}

func MakeNoReply() *NoReply {
	return noReply
}
